Loosen coupling of upgrade queries to OS version by using newer (2014) Qt services.
authorRobert Lipe <robertlipe@gpsbabel.org>
Thu, 7 Dec 2017 00:46:18 +0000 (18:46 -0600)
committerRobert Lipe <robertlipe@gpsbabel.org>
Thu, 7 Dec 2017 00:46:18 +0000 (18:46 -0600)
config.h.in
gui/app.pro
gui/upgrade.cc

index f669911cfd84d0add71222e36cb7ba0cca12ecdd..ba0fd3be0e000c023b9925f218a98a696f8a170d 100644 (file)
@@ -60,9 +60,6 @@
 /* Define to 1 if you have the <sys/types.h> header file. */
 #undef HAVE_SYS_TYPES_H
 
-/* Define to 1 if you have the `uname' function. */
-#undef HAVE_UNAME
-
 /* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H
 
index 4cf67883f66de39c935b94373b3b5346928cb1d8..d97da1f506a8420ddb2ddf10fd9ddccec752138c 100755 (executable)
@@ -18,6 +18,7 @@ QT += core \
 
 qtHaveModule(webenginewidgets) {
   QT += webenginewidgets
+  QT += webchannel
   DEFINES += HAVE_WEBENGINE
 } else {
   QT += webkit webkitwidgets 
index 449edf2f0a473a01a3e874aaaef06056086e20a8..538ca94e1a9d4636da87a290702c4b71e47c1121 100644 (file)
 #include "../config.h"
 #endif
 
-#include <stdio.h>
-#if HAVE_UNAME
-#include <sys/utsname.h>
-#endif // HAVE_UNAME
+#include <cstdio>
 
 #include <QDebug>
 #include <QDesktopServices>
@@ -46,7 +43,7 @@
 #include <QVariant>
 
 
-#if 0
+#if 1
 static const bool testing = true;
 #else
 static const bool testing = false;
@@ -83,67 +80,12 @@ bool UpgradeCheck::isTestMode()
 
 QString UpgradeCheck::getOsName()
 {
-  // Do not translate these strings.
-#if defined (Q_OS_LINUX)
-    return "Linux";
-#elif defined (Q_OS_MAC)
-  return "Mac";
-#elif defined (Q_OS_WIN)
-  return "Windows";
-#else
-  return "Unknown";
-#endif
-
+  return QSysInfo::productType();
 }
-// See http://doc.trolltech.com/4.5/qsysinfo.html to interpret results
+
 QString UpgradeCheck::getOsVersion()
 {
-#if defined (Q_OS_MAC)
-  switch (QSysInfo::MacintoshVersion) {
-  case QSysInfo::MV_10_3: return "10.3"; break;
-  case QSysInfo::MV_10_4: return "10.4"; break;
-  case QSysInfo::MV_10_5: return "10.5"; break;
-  case QSysInfo::MV_10_6: return "10.6"; break;  // Snow Leopard.
-  case QSysInfo::MV_10_7: return "10.7"; break;  // Lion.
-  case QSysInfo::MV_10_8: return "10.8"; break;  // Mountain Lion
-  case QSysInfo::MV_10_9: return "10.9"; break;  // Mavericks
-  case QSysInfo::MV_10_10: return "10.10"; break;  // Yosemite
-  case QSysInfo::MV_10_11: return "10.11"; break;  // El Capitan
-  case QSysInfo::MV_10_12: return "10.12"; break;  // Sierra
-  default:
-    // This probably doesn't work...
-    if (QSysInfo::MacintoshVersion == 0x000E) {
-      return "10.13";
-      break;
-    }
-    return QString("Unknown Mac %1").arg(QSysInfo::MacintoshVersion);
-  };
-#elif defined (Q_OS_WIN)
-
-  switch (QSysInfo::WindowsVersion) {
-  // Wildly improbable...
-  case QSysInfo::WV_95: return "95"; break;
-  case QSysInfo::WV_98: return "98"; break;
-  case QSysInfo::WV_Me: return "Me"; break;
-
-  case QSysInfo::WV_4_0: return "NT 4"; break;
-  case QSysInfo::WV_5_0: return "2000"; break;
-  case QSysInfo::WV_5_1: return "XP"; break;
-  case QSysInfo::WV_5_2: return "2003"; break;
-  case QSysInfo::WV_6_0: return "Vista"; break;
-  case QSysInfo::WV_6_1: return "7"; break;
-  case QSysInfo::WV_6_2: return "8"; break;
-  case QSysInfo::WV_6_3: return "8.1"; break;
-//  case QSysInfo::WV_10_0: return "10"; break;
-  default:
-       if (QSysInfo::WindowsVersion == 0x00a0) return "8";
-       if (QSysInfo::WindowsVersion == 0x00b0) return "8.1";
-       if (QSysInfo::WindowsVersion == 0x00c0) return "10.0";
-      return "Windows/Unknown";
-  }
-#endif
-  // FIXME: find something appropriately clever to do for Linux, etc. here.
-  return "Unknown";
+  return QSysInfo::productVersion();
 }
 
 UpgradeCheck::updateStatus UpgradeCheck::checkForUpgrade(
@@ -175,13 +117,7 @@ UpgradeCheck::updateStatus UpgradeCheck::checkForUpgrade(
   args += "&current_gui_version=" VERSION;
   args += "&installation=" + babelData_.installationUuid_;
   args += "&os=" + getOsName();
-#if HAVE_UNAME || defined (Q_OS_MAC)
-  struct utsname utsname;
-  if (0 == uname(&utsname)) {
-    args += "&cpu=" + QString(utsname.machine);
-  }
-#endif
-
+  args += "&cpu=" + QSysInfo::currentCpuArchitecture();
   args += "&os_ver=" + getOsVersion();
   args += QString("&beta_ok=%1").arg(allowBeta); 
   args += "&lang=" + QLocale::languageToString(locale.language());